﻿//PlazaTradeDerivativeColumns.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.Plaza.Metadata
{
	using System;

	/// <summary>
	/// Колонки таблицы, содержащей журнал сделок.
	/// </summary>
	public abstract class PlazaTradeDerivativeColumns : PlazaColumns
	{
		internal PlazaTradeDerivativeColumns(string tableId)
			: base(tableId)
		{
			DealId = new PlazaColumn(TableId, "id_deal", typeof(long));
			SessionId = new PlazaColumn(TableId, "sess_id", typeof(int));
			IsinId = new PlazaColumn(TableId, "isin_id", typeof(int));
			Price = new PlazaColumn(TableId, "price", "d16.5");
			Amount = new PlazaColumn(TableId, "amount", typeof(int));
			Moment = new PlazaColumn(TableId, "moment", typeof(DateTime));
			SellCode = new PlazaColumn(TableId, "code_sell", "c7", false);
			BuyCode = new PlazaColumn(TableId, "code_buy", "c7", false);
			SellOrderId = new PlazaColumn(TableId, "id_ord_sell", typeof(long));
			SellExternalId = new PlazaColumn(TableId, "ext_id_sell", typeof(int));  // Нужен для определения: своя сделка или нет (заполняется только для своих сделок)
			SellComment = new PlazaColumn(TableId, "comment_sell", "c20", false);
			SellTrust = new PlazaColumn(TableId, "trust_sell", typeof(bool), false);
			SellStatus = new PlazaColumn(TableId, "status_sell", typeof(int), false);
			BuyOrderId = new PlazaColumn(TableId, "id_ord_buy", typeof(long));
			BuyExternalId = new PlazaColumn(TableId, "ext_id_buy", typeof(int));  // Нужен для определения: своя сделка или нет (заполняется только для своих сделок)
			BuyComment = new PlazaColumn(TableId, "comment_buy", "c20", false);
			BuyTrust = new PlazaColumn(TableId, "trust_buy", typeof(bool), false);
			BuyStatus = new PlazaColumn(TableId, "status_buy", typeof(int), false);
			Position = new PlazaColumn(TableId, "pos", typeof(int));
			NoSystem = new PlazaColumn(TableId, "nosystem", typeof(bool));  // Нужен для определения: системная или внесистемная сделка
			HedgeSell = new PlazaColumn(TableId, "hedge_sell", typeof(bool), false);
			HedgeBuy = new PlazaColumn(TableId, "hedge_buy", typeof(bool), false);
			SellFee = new PlazaColumn(TableId, "fee_sell", "d26.2", false);
			BuyFee = new PlazaColumn(TableId, "fee_buy", "d26.2", false);
			LoginSell = new PlazaColumn(TableId, "login_sell", "c20", false);
			LoginBuy = new PlazaColumn(TableId, "login_buy", "c20", false);
			SellRtsCode = new PlazaColumn(TableId, "code_rts_sell", "c7", false);
			BuyRtsCode = new PlazaColumn(TableId, "code_rts_buy", "c7", false);
			IdDealMultiLeg = new PlazaColumn(TableId, "id_deal_multileg", typeof(long), false);
		}

		/// <summary>
		/// Номер сделки.
		/// </summary>
		public readonly PlazaColumn DealId;

		/// <summary>
		/// Идентификатор торговой сессии.
		/// </summary>
		public readonly PlazaColumn SessionId;

		/// <summary>
		/// Уникальный числовой идентификатор инструмента.
		/// </summary>
		public readonly PlazaColumn IsinId;

		/// <summary>
		/// Цена.
		/// </summary>
		public readonly PlazaColumn Price;

		/// <summary>
		/// Объем, кол-во единиц инструмента.
		/// </summary>
		public readonly PlazaColumn Amount;

		/// <summary>
		/// Время заключения сделки.
		/// </summary>
		public readonly PlazaColumn Moment;

		/// <summary>
		/// Код продавца.
		/// </summary>
		public readonly PlazaColumn SellCode;

		/// <summary>
		/// Код покупателя.
		/// </summary>
		public readonly PlazaColumn BuyCode;

		/// <summary>
		/// Номер заявки продавца.
		/// </summary>
		public readonly PlazaColumn SellOrderId;

		/// <summary>
		/// Внешний номер из заявки продавца.
		/// </summary>
		public readonly PlazaColumn SellExternalId;

		/// <summary>
		/// Комментарий из заявки продавца.
		/// </summary>
		public readonly PlazaColumn SellComment;

		/// <summary>
		/// Признак ДУ (доверительного управления) из заявки продавца.
		/// </summary>
		public readonly PlazaColumn SellTrust;

		/// <summary>
		/// Статус сделки со стороны продавца.
		/// </summary>
		public readonly PlazaColumn SellStatus;

		/// <summary>
		/// Номер заявки покупателя.
		/// </summary>
		public readonly PlazaColumn BuyOrderId;

		/// <summary>
		/// Внешний номер из заявки покупателя.
		/// </summary>
		public readonly PlazaColumn BuyExternalId;

		/// <summary>
		/// Комментарий из заявки покупателя.
		/// </summary>
		public readonly PlazaColumn BuyComment;

		/// <summary>
		/// Признак ДУ (доверительного управления) из заявки покупателя.
		/// </summary>
		public readonly PlazaColumn BuyTrust;

		/// <summary>
		/// Статус сделки со стороны покупателя.
		/// </summary>
		public readonly PlazaColumn BuyStatus;

		/// <summary>
		/// Кол-во позиций по инструменту на рынке после сделки.
		/// </summary>
		public readonly PlazaColumn Position;

		/// <summary>
		/// Признак внесистемной сделки.
		/// </summary>
		public readonly PlazaColumn NoSystem;

		/// <summary>
		/// Признак хеджевой сделки со стороны продавца.
		/// </summary>
		public readonly PlazaColumn HedgeBuy;

		/// <summary>
		/// Признак хеджевой сделки со стороны покупателя.
		/// </summary>
		public readonly PlazaColumn HedgeSell;

		/// <summary>
		/// Логин пользователя продавца.
		/// </summary>
		public readonly PlazaColumn LoginSell;

		/// <summary>
		/// Логин пользователя покупателя.
		/// </summary>
		public readonly PlazaColumn LoginBuy;

		/// <summary>
		/// Код РТС покупателя.
		/// </summary>
		public readonly PlazaColumn SellRtsCode;

		/// <summary>
		/// Код РТС продавца.
		/// </summary>
		public readonly PlazaColumn BuyRtsCode;

		/// <summary>
		/// Сбор по сделке продавца.
		/// </summary>
		public readonly PlazaColumn SellFee;

		/// <summary>
		/// Сбор по сделке покупателя.
		/// </summary>
		public readonly PlazaColumn BuyFee;

		/// <summary>
		/// Номер сделки по связке.
		/// </summary>
		public readonly PlazaColumn IdDealMultiLeg;
	}
}
